package com.onstar.cn.auth.userProfile;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

public class Subscriber implements Serializable {
    private String subscriberID;

    private String idpID;

    private String governmentID;

    private String gender;

    private String firstName;

    private String lastName;

    private String phoneNumber;

    private String email;

    private String vin;

    /**
     * 可能有多种值，用户在account下的角色，相同的用户在不同的account下可能拥有不同的role，根据account进行变化
     */
    private String role;

    private List<Account> accounts;
    private List<CorePackage> corePackages;

    private Set<String> vehicleIds;
    private Set<String> emails;
    private Set<String> mobiles;

    /**
     * 用户登录后的默认accountID
     */
    private String defaultAccountID;


    /**
     * 版本检查更新
     */
    private AppVersion app;

    /**
     * 当前用户是否可以切换车辆
     */
    private boolean changingVehicleAllowed = false;

    /**
     * 是否是过期用户
     */
    private boolean expiredSubscriber = false;

    /**
     * 用户GAA中的手机号
     */
    private String gaaPhoneNumber;

    private String guid;

    public boolean isCarSharingFlag() {
        return carSharingFlag;
    }

    public void setCarSharingFlag(boolean carSharingFlag) {
        this.carSharingFlag = carSharingFlag;
    }

    /** 是否有车分享权限 有true 没有flase*/
    private boolean carSharingFlag;


    public String getGaaPhoneNumber() {
        return gaaPhoneNumber;
    }

    public String getGuid() {
        return guid;
    }

    public void setGaaPhoneNumber(String gaaPhoneNumber) {
        this.gaaPhoneNumber = gaaPhoneNumber;
    }


    private boolean info3Flag;
    /**
     * info3.0 app或微信注册标识
     */
    private boolean appFlag;
    /**
     * info3.0 协议标识
     */
    private boolean legalFlag;

    /**
     * info3.0 guid 全球唯一标识
     */

    public boolean isInfo3Flag() {
        return info3Flag;
    }

    public boolean isEmptyPhoneNo() {
        return isEmptyPhoneNo;
    }

    public boolean isAppFlag() {
        return appFlag;
    }

    public void setEmptyPhoneNo(boolean emptyPhoneNo) {
        isEmptyPhoneNo = emptyPhoneNo;
    }

    public boolean isLegalFlag() {
        return legalFlag;
    }

    /**
     * 7.1：手机标识是否为空 true是空 false是不空
     */
    private boolean isEmptyPhoneNo;


    public boolean isExpiredSubscriber() {
        return expiredSubscriber;
    }

    public void setExpiredSubscriber(boolean expiredSubscriber) {
        this.expiredSubscriber = expiredSubscriber;
    }

    public boolean isChangingVehicleAllowed() {
        return changingVehicleAllowed;
    }

    public void setChangingVehicleAllowed(boolean changingVehicleAllowed) {
        this.changingVehicleAllowed = changingVehicleAllowed;
    }


    public AppVersion getApp() {
        return app;
    }

    public void setApp(AppVersion app) {
        this.app = app;
    }

    public String getSubscriberID() {
        return subscriberID;
    }

    public void setSubscriberID(String subscriberID) {
        this.subscriberID = subscriberID;
    }

    public String getIdpID() {
        return idpID;
    }

    public void setIdpID(String idpID) {
        this.idpID = idpID;
    }

    public String getGovernmentID() {
        return governmentID;
    }

    public void setGovernmentID(String governmentID) {
        this.governmentID = governmentID;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public Set<String> getVehicleIds() {
        return vehicleIds;
    }

    public void setVehicleIds(Set<String> vehicleIds) {
        this.vehicleIds = vehicleIds;
    }

    public Set<String> getEmails() {
        return emails;
    }

    public void setEmails(Set<String> emails) {
        this.emails = emails;
    }

    public Set<String> getMobiles() {
        return mobiles;
    }

    public void setMobiles(Set<String> mobiles) {
        this.mobiles = mobiles;
    }

    public List<Account> getAccounts() {
        return accounts;
    }

    public void setAccounts(List<Account> accounts) {
        this.accounts = accounts;
    }

    public String getDefaultAccountID() {
        return defaultAccountID;
    }

    public void setDefaultAccountID(String defaultAccountID) {
        this.defaultAccountID = defaultAccountID;
    }

    public String getVin() {
        return vin;
    }

    public void setVin(String vin) {
        this.vin = vin;
    }


    public List<CorePackage> getCorePackages() {
        return corePackages;
    }

    public void setCorePackages(List<CorePackage> corePackages) {
        this.corePackages = corePackages;
    }
}
